1. Technical Field
The present invention relates generally to filing systems for a data storage networks and more particularly to inode based policy identifiers in a filing system.
2. Description of Related Art
Filing systems have the storage capacity to span terabytes and petabytes of data and contain billions of file system objects. With increasing numbers of file system objects, provisioning and controlling space in the filing system requires more than the traditional notion of quota management. Space management for users, groups, and directory trees needs to be able to scale to larger storage capacities and the increasing number of file system objects.
To provision and control space in the filing system, file servers (e.g., storage area network filers and network attached storage gateways) typically duplicate the namespace of the filing system and store metadata alongside the duplicated namespace. The namespace is space reserved by the filing system to contain the names of file system objects, such as a file, directory, and/or sub-directory. The metadata includes additional information about the file system objects. The metadata is used to determine compliance with space and quota management policies, such as disk usage quotas and access control to a file.
Often, the file servers depend on maintaining external databases that duplicate the namespace of the filing system. When the namespace grows to millions or billions of objects, the external databases fail to scale to the increased number of file system objects. The external databases grow too large to provide rapid access to the duplicated namespace. The file system latency is increased because the external database and the namespace of the filing system are referenced when performing file system operations. Additionally, the file servers often require some limited file system integration, such as mechanisms provided by NetApp and Windows, to intercept the file system operations and for notifications of changes to the namespace such that duplication of the namespace is possible.
Because the external databases typically do not scale to the increasing storage capacities, the file servers may store the metadata in the file system itself. In one example, the size of an inode of a file system object is increased to additional space for storing the metadata. Increasing the size of the inode, however, increases the memory and disk footprint of the filing system and decreases the efficiency of file system caches. In another example, resource forks such as in Apple's Hierarchical File System Plus (HFS+) and Microsoft's New Technology File System (NTFS) extended attributes, allow metadata storage in a separate part of the file system. Similarly, parallel metadata files, which are files stored in the filing system with extended attributes similar to an inode of a file system object, are used to add information to the namespace. However, the metadata stored by the resource forks and the parallel metadata files are stored at a different location than the namespace which, much like the external databases, reduces locality of access and increases latency. The file server accesses different locations for both the namespace and the metadata during file system operations.